package com.uzai.console.service.wechatprivate;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.wechatprivate.wxq.manageplan.WxqGroupManagePlanQuery;
import com.uzai.console.dto.wechatprivate.wxq.wxgroup.*;
import com.uzai.console.dto.wechatwork.wxq.wxgroup.*;
import com.uzai.console.vo.wechatprivate.wxq.wxgroup.WxGroupInfoVo;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface WxGroupService {

    /**
     * 查询微信群列表
     *
     * @param wxGroupQuery
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    Page<WxGroupInfoVo> findWxGroupList(WxGroupQuery wxGroupQuery);

    /**
     * 查询微信群列表
     *
     * @param wxGroupIdDto
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    WxGroupInfoVo findWxGroupInfo(WxGroupIdDto wxGroupIdDto);

    /**
     * 查询微信群列表-根据管理方案id
     *
     * @param wxqGroupManagePlanQuery
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    //Page<WxGroupInfoVo> findWxqGroupManagePlanList(WxqGroupManagePlanQuery wxqGroupManagePlanQuery);

    /**
     * 退群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupIdDto
     * @return null
     */
    void quitWxGroup(WxGroupIdDto wxGroupIdDto);

    /**
     * 单个发送消息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupSendMessageDto
     * @return null
     */
    void sendMessage(WxGroupSendMessageDto wxGroupSendMessageDto);

    /**
     * 设置管理方案
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupUpdateManagePlanDto
     * @return null
     */
    void updateManagePlan(WxGroupUpdateManagePlanDto wxGroupUpdateManagePlanDto);


    /**
     * 批量修改管理方案
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupBatchUpdateManagePlanDto
     * @return null
     */
    void batchUpdateManagePlan(WxGroupBatchUpdateManagePlanDto wxGroupBatchUpdateManagePlanDto);


    /**
     * 单个刷新群成员
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupIdDto
     * @return null
     */
    void refreshGroupMember(WxGroupIdDto wxGroupIdDto);

    /**
     * 修改群昵称
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupUpdateNicknameDto
     * @return null
     */
    void updateWxGroupNickName(WxGroupUpdateNicknameDto wxGroupUpdateNicknameDto);

    /**
     * 创建群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupCreateDto
     * @return null
     */
    void createWxGroup(WxGroupCreateDto wxGroupCreateDto);

    /**
     * 邀请入群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupInviteDto
     * @return null
     */
    void inviteWxGroup(WxGroupInviteDto wxGroupInviteDto);

    /**
     * 批量邀请入群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupBatchInviteDto
     * @return null
     */
    void batchInviteWxGroup(WxGroupBatchInviteDto wxGroupBatchInviteDto);

    /**
     * 发送群公告
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupSendNoticeDto
     * @return null
     */
    void sendNotice(WxGroupSendNoticeDto wxGroupSendNoticeDto);

    /**
     * 批量发送群公告
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupBatchSendNoticeDto
     * @return null
     */
    void batchSendNotice(WxGroupBatchSendNoticeDto wxGroupBatchSendNoticeDto);

    /**
     * 刷新成员
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupIdDto
     * @return null
     */
    void refreshMember(WxGroupIdDto wxGroupIdDto);

    /**
     * 批量踢出群成员
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param batchKickWxGroupMemberDto
     * @return null
     */
    void batchKickWxGroupMember(BatchKickWxGroupMemberDto batchKickWxGroupMemberDto);

    /**
     * 修改微信群备注
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxGroupUpdateRemarkDto
     * @return null
     */
    void updateRemark(WxGroupUpdateRemarkDto wxGroupUpdateRemarkDto);


    void batchAddManager(BatchAddManagerDto batchAddManagerDto);
}
